// pages/index/seemore/seemore.js
// 引入全局变量
const app = getApp();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        articleList: [],
        url: '',
        pageNum: 1,
        pages: 0,
        // 节流阀，false表示没有加载数据；true表示正在加载数据
        isLoading: false
    },
    // 跳转到文章列表页面
    goartileList(e) {
        const articleId = e.currentTarget.dataset.id;
        const articleTypeId = e.currentTarget.dataset.typeid;
        // 进行页面跳转
        wx.navigateTo({
            url: `/pages/index/artileList/artileList?id=${articleId}&typeId=${articleTypeId}`,
            success: function (res) {
                // 通过 eventChannel 向被打开页面传送数据
                res.eventChannel.emit('artileList', {
                    articleId: articleId,
                    articleTypeId: articleTypeId
                })
            }
        })
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        // 当页面加载时获取全局的url数据
        this.setData({
            // 获取全局的url赋值给当前页面的URL
            url: app.globalData.URL
        })
        // 动态调用后端接口
        this.getData();
    },

    /**
     * 封装获取数据的方法
     */
    getData() {
        // 如果正在加载数据，则直接返回
        if (this.data.isLoading) {
            return;
        }
        this.setData({
            isLoading: true
        })
        // 加入一个正在加载中的效果
        wx.showLoading({
            title: '正在加载中...',
            icon: 'loading'
        })
        let that = this;
        wx.request({
            url: that.data.url + '/article/selectAll',
            data: {
                pageNum: that.data.pageNum,
                pageSize: 9
            },
            success(resp) {
                console.log(resp.data.data.list);
                that.setData({
                    articleList: [...that.data.articleList, ...resp.data.data.list],
                    // 获取总页数，为后面的触底事件结尾做处理
                    pages: resp.data.data.pages
                })
                console.log(resp.data.data.pages);
            },
            complete() {
                // 关闭正在加载中提示
                wx.hideLoading();
                // 关闭下拉刷新
                wx.stopPullDownRefresh();
                that.setData({
                    isLoading: false
                })
            }
        })
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {
        console.log('加载下一页数据');
        // 判断如果数据正在加载中，则拦截
        if (this.data.isLoading) {
            return;
        }
        // 上提，就是让pageNum+1即可
        this.setData({
            pageNum: this.data.pageNum + 1
        })
        // 判断如果是最后一页了，则提示不在加载了
        if (this.data.pageNum > this.data.pages) {
            wx.showToast({
                title: '没有更多数据了.....',
            })
            return;
        }
        // 再次查询
        this.getData();
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {
        // 初始化数据
        this.setData({
            pageNum: 1,
            articleList: [],
            pages: 0
        })
        // 查询
        this.getData();
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})